|
Posizione nel menu |
---|
Surface → Riempimento... |
Ambiente |
Surface|Version=0.17 |
Avvio veloce |
Nessuno |
Introdotto nella versione |
- |
Vedere anche |
Nessuno |
Surface Filling crea una superficie da una serie di bordi collegati.
Gli spigoli di base che formano il contorno chiuso, così come i vertici e gli spigoli ausiliari, possono appartenere a curve 2D di Draft o di
Sketcher, ma possono anche appartenere a oggetti solidi 3D come quelli creati con
Part o
PartDesign.
Esempio di una superficie riempita, delimitata da quattro spigoli situati nel piano XY; (a sinistra) solo i quattro bordi e (a destra) una curva aggiunta nello spazio che definisce la curvatura della superficie
The Support surface acts as an additional constraint for the surface. The following simple example will give you an idea how this works:
180°
.
Una Surface Filling (classe Surface::Filling
) è derivato dalla base Part Feature (classe Part::Feature
, attraverso la sottoclasse Part::Spline
), quindi condivide tutte le proprietà di quest'ultima.
Oltre alle proprietà descritte in Part Feature, Surface Filling ha le seguenti proprietà nell'editor delle proprietà.
Filling
LinkSubList
): bordi di confine; C0 è richiesto per i bordi senza una faccia corrispondente.StringList
):IntegerList
): ordine di vincolo sulle facce del contorno; sono possibili 0
, 1
, e 2
.LinkSubList
): bordi di vincoli non legati; C0 è richiesto per i bordi senza una faccia corrispondente.StringList
):IntegerList
): ordine di vincolo sulle facce non legate; sono possibili 0
, 1
, e 2
.LinkSubList
): vincolo su una faccia libera.IntegerList
): ordine di vincolo sulle facce libere.LinkSubList
): punti di vincolo sulla superficie.LinkSub
): superficie iniziale da utilizzare.Integer
): grado iniziale, il valore predefinito è 3
.Integer
): numero di punti su un bordo per vincolarlo.Integer
): numero di iterazioni, il valore predefinito è 2
.Bool
): il valore predefinito è false
.Float
): tolleranza 2D, il valore predefinito è 0.0
.Float
): tolleranza 3D, il valore predefinito è 0.0
.Float
): tolleranza G1, il valore predefinito è 0.01
.Float
): tolleranza G2, il valore predefinito è 0.10
.Integer
): grado massimo della curva, il valore predefinito è 8
.Integer
): numero massimo di segmenti, il valore predefinito è 9
.
Base
Bool
): il valore predefinito è false
; se impostato su true
, mostrerà una sovrapposizione con i punti di controllo della superficie.
Vedere anche: Script di base per FreeCAD
Lo strumento Surface Filling può essere utilizzato nelle macro e dalla console Python aggiungendo l'oggetto Surface::Filling
.
BoundaryEdges
dell'oggetto.UnboundEdges
e Points
dell'oggetto.import FreeCAD as App
import Draft
doc = App.newDocument()
a = App.Vector(-20, -20, 0)
b = App.Vector(-18, 25, 0)
c = App.Vector(60, 26, 0)
d = App.Vector(33, -20, 0)
points1 = [a, App.Vector(-20, -8, 0), App.Vector(-17, 7, 0), b]
obj1 = Draft.make_bspline(points1)
points2 = [b, App.Vector(0, 25, 0), c]
obj2 = Draft.make_bspline(points2)
points3 = [c, App.Vector(37, 4, 0), d]
obj3 = Draft.make_bspline(points3)
points4 = [d, App.Vector(-2, -18, 0), a]
obj4 = Draft.make_bspline(points4)
doc.recompute()
surf = doc.addObject("Surface::Filling", "Surface")
surf.BoundaryEdges = [(obj1, "Edge1"),
(obj2, "Edge1"),
(obj3, "Edge1"),
(obj4, "Edge1")]
doc.recompute()
# ---------------------------------------------------------
points_spl = [App.Vector(-10, 0, 2),
App.Vector(4, 0, 7),
App.Vector(18, 0, -5),
App.Vector(25, 0, 0),
App.Vector(30, 0, 0)]
aux_edge = Draft.make_bspline(points_spl)
doc.recompute()
surf.UnboundEdges = [(aux_edge, "Edge1")]
doc.recompute()
# ---------------------------------------------------------
aux_v1 = Draft.make_line(App.Vector(-13, -12, 5),
App.Vector(-13, -12, -5))
aux_v2 = Draft.make_line(App.Vector(-3, 18, 5),
App.Vector(-3, 18, -5))
doc.recompute()
surf.Points = [(aux_v1, "Vertex2"),
(aux_v2, "Vertex1")]
doc.recompute()